Some existing systems provide access to data storage through a Representational State Transfer (REST) interface via a coupling that presents a file system interface for managing, storing, updating and retrieving objects, data and metadata. There are a variety of systems that provide such an interface, these include the Content File System (CFS) from Caringo, File Connectors from Scality and Coronado Access Points from Bridgestor.
The file system side of these couplings uses traditional file system protocols such as NFS (Network File System), Server Message Block (SMB)/Common Internet File System (CIFS) and File Transfer Protocol (FTP), through file system drivers, or through other mechanisms that provide a file system to a client computer.
These existing systems lack flexibility in that they do not include functionality to list a subset of objects on the basis of the object's metadata, nor do they include functionality to expose via a file system objects that are not created through it, i.e., objects that have been created directly through the object store or via other gateways to the object store. Users and applications only want to be presented with the subset of data (e.g., the digital objects) that they are interested in, and that subset should not always be the entire contents of a single bucket, container or exported directory, folder or share. Users and applications also want access to the desired set of objects through multiple means, e.g., file system and REST and other gateways. Existing file system interfaces also fail to provide access to object metadata that is stored with the object in the object store. Typically, file metadata is different from object metadata and it was not possible to access the object metadata via the traditional file system interface.